*/
( function ( mw, $ ) {
$( document ).ready( function ( $ ) {
- var map,
+ var map, searchboxesSelectors,
// Region where the suggestions box will appear directly below
// (using the same width). Can be a container element or the input
// itself, depending on what suits best in the environment.
$searchRegion = $( '#simpleSearch, #searchInput' ).first(),
$searchInput = $( '#searchInput' );
- // Ensure that the thing is actually present!
- if ( $searchRegion.length === 0 ) {
- // Don't try to set anything up if simpleSearch is disabled sitewide.
- // The loader code loads us if the option is present, even if we're
- // not actually enabled (anymore).
- return;
- }
-
// Compatibility map
map = {
browsers: {
return;
}
- // Placeholder text for search box
- $searchInput
- .attr( 'placeholder', mw.msg( 'searchsuggest-search' ) )
- .placeholder();
-
// General suggestions functionality for all search boxes
- $( '#searchInput, #searchInput2, #powerSearchText, #searchText' )
+ searchboxesSelectors = [
+ // Primary searchbox on every page in standard skins
+ '#searchInput',
+ // Secondary searchbox in legacy skins (LegacyTemplate::searchForm uses id "searchInput + unique id")
+ '#searchInput2',
+ // Special:Search
+ '#powerSearchText',
+ '#searchText',
+ // Generic selector for skins with multiple searchboxes (used by CologneBlue)
+ '.mw-searchInput'
+ ];
+ $( searchboxesSelectors.join(', ') )
.suggestions( {
fetch: function ( query ) {
var $el, jqXhr;
$( this ).trigger( 'keypress' );
} );
+ // Ensure that the thing is actually present!
+ if ( $searchRegion.length === 0 ) {
+ // Don't try to set anything up if simpleSearch is disabled sitewide.
+ // The loader code loads us if the option is present, even if we're
+ // not actually enabled (anymore).
+ return;
+ }
+
+ // Placeholder text for search box
+ $searchInput
+ .attr( 'placeholder', mw.msg( 'searchsuggest-search' ) )
+ .placeholder();
+
// Special suggestions functionality for skin-provided search box
$searchInput.suggestions( {
result: {